home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 January: Mac OS SDK / Dev.CD Jan 00 SDK2.toast / Development Kits / Hardware / Mac OS USB DDK v1.3f3 / Mac OS USB DDK Readme < prev    next >
Encoding:
Text File  |  1999-08-24  |  17.2 KB  |  440 lines  |  [TEXT/ttxt]

  1.  ***
  2.  ***       Universal Serial Bus(tm) (USB) for the Mac OS
  3.  ***    Mac OS USB 1.3 DDK Developer Release Notes
  4.  ***    Copyright 1998 Apple Computer, Inc.
  5.  ***
  6.  
  7.   *** IMPORTANT *** IMPORTANT *** IMPORTANT *** IMPORTANT ***
  8.  
  9. The USB Support and USB Device Extension files may not be distributed 
  10. in any manner.  These files are for developer use only, and are NOT
  11. TO BE INCLUDED with the components installed with your product.
  12.  
  13.  
  14.  Table of Contents:
  15. -------------------------------------------------------------
  16.  Changes from USB v1.0, 1.0.1, 1.1, 1.2 -> 1.3f3
  17.  System Requirements for USB 1.3f3
  18.  USB Fundamentals
  19.  Keeping up to date on Mac OS USB
  20.  Getting started with Mac OS USB
  21.  Installing the Mac OS USB Software
  22.  Using the Mac OS USB DDK under MPW
  23.  Using the Mac OS USB DDK with MetroWerks CodeWarrior
  24.  Installing the Mac OS USB DDK for CodeWarrior for the First Time  
  25.  Updating a Previously Installed Mac OS USB DDK for CodeWarrior
  26.  Using the CodeWarrior Project Files
  27.  Description of Installed Files
  28.  Known Problems and Issues
  29.  Contact Information
  30. -------------------------------------------------------------
  31.  
  32. Changes from USB v1.0, 1.0.1, 1.1, 1.2 -> 1.3f3
  33. -------------------------------------------
  34.  
  35. Refer to the document "Mac OS USB v1.3f3 Readme" for a description
  36. of the changes between versions of USB.
  37.  
  38.  
  39. System Requirements for USB 1.3
  40. -------------------------------
  41.  
  42. Apple is formally qualifying USB 1.3 on the Macintosh systems with built-in USB and SSW 8.6 installed. To test with USB v1.3f3, first install SSW 8.6 onto a system with USB Built-in then follow the instructions below.  You can access the US version of the update with the following URL.
  43.  
  44. >http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/US/Macintosh/System/Mac_OS_8.6_Update/>
  45.  
  46. If your product depends on USB v1.2 for Isochronous support, you should 
  47. have your Installer check for the presence of this release of USB using
  48. the Gestalt function with the gestaltUSBVersion selector. This selector
  49. value is defined in the Gestalt.h header file which is part of the 
  50. Universal Interfaces and Libraries v3.2. Refer to the Mac OS USB
  51. Developer web site for information on how customers can upgrade to this 
  52. version of USB.
  53.  
  54.      <http://developer.apple.com/hardware/usb/devinfo.htm>
  55.  
  56.  
  57.  
  58. USB Fundamentals
  59. ----------------
  60.  
  61. For the current generation of Power Macintosh systems, USB is the 
  62. primary interface for connections to low to medium speed peripheral
  63. devices. There are numerous advantages for adopting the USB standard on
  64. Macintosh, and they are discussed in the "Mac OS USB DDK API Reference
  65. Guide". On the future Macintosh systems there will be no ADB, 
  66. Serial Port, or SCSI connections. USB will be the primary port 
  67. for connecting peripheral devices to the Macintosh. 
  68.  
  69. The DDK provides the tools, interfaces, system files, and module 
  70. examples for you to start development of USB products
  71. for the Macintosh. The DDK provides the same release of USB
  72. component software that ships on the introductory release of the
  73. Power Macintosh iMac system.
  74.  
  75.  
  76. Keeping up to date on Mac OS USB
  77. --------------------------------
  78.  
  79. To stay abreast with developments on Mac OS USB, check out the 
  80. Mac OS USB Developer web site for the latest information. As updates
  81. to Mac OS USB occur, development releases of the software will be
  82. made available from this web site. The URL for the web site is:
  83.  
  84. <http://developer.apple.com/dev/usb>
  85.  
  86. You can also subscribe to the Mac OS USB Developer
  87. mailing list where development questions regarding Mac OS USB
  88. are posed and answered. To submit a question to the mailing list
  89. you must first be a subscriber. To subscribe to the mailing list,
  90. send an email with the subject field set to "subscribe usb" 
  91. (omit the double quotes for the message) to requests@isg.apple.com.
  92.  
  93. Use the following URL to accomplish this.
  94.  
  95. <mailto:requests@isg.apple.com?SUBJECT=subscribe usb>
  96.  
  97. USB Alerts to developers are always posted to the mailing list.
  98. These alerts are also posted to the Mac OS USB Developer Web
  99. site at the following location.
  100.  
  101. http://developer.apple.com/dev/usb/devalerts.html
  102.  
  103.  
  104. Getting started with Mac OS USB
  105. -------------------------------
  106.  
  107. To develop with Mac OS USB v1.3, you will need a Power Macintosh system with USB built in, or a USB PCI card installed.  You should also have SSW 8.6 installed.
  108.  
  109. USB v1.3 will support PCI USB cards from several vendors. The enclosed software is for developmental purposes and will support USB PCI cards from other vendors, but it is not directly supported by Apple, nor is it intended for end-users. End-user customers are encouraged to 
  110. purchase a PCI USB card that includes licensed software and support.
  111.  
  112. You may find that development on a Power Mac system with a USB PCI card and serial port, is easier, as you can use the Power Mac Debugger with a second Power Macintosh system. A Power Macintosh system with ADBkeyboard is useful for debugging with Macsbug, since there are cases when
  113. the system cannot process keystrokes from a USB keyboard.
  114.  
  115.  
  116. Installing the Mac OS USB Software
  117. ----------------------------------
  118.  
  119. Before using the enclosed software on an iMac or 1999 Power Macintosh G3, 
  120. you must already have the Mac OS USB v1.1 present. If the Mac OS ROM file 
  121. includes this release of USB, do not install the system extension 
  122. components from this DDK to the Extensions Folder.
  123.  
  124. To install the USB System Software components, 
  125. 1. remove all files with the following names from your Extensions Folder, 
  126.  
  127.      USB Support,
  128.   USB Device Extension,
  129.   USBCompositeDriver,
  130.   USBFamilyExpert,
  131.   USBHIDKeyboardModule,
  132.   USBHIDMouseModule,
  133.   USBHIDUniversalModule,
  134.   USBHubDriver0,
  135.   USBHubDriver1, and
  136.   USBOpenHCIDriver
  137.   USBPrintDriver
  138.   USBCommClass
  139.   SerialShimLib
  140.  
  141. 2. drag copy the contents of the folder
  142.  
  143. :USBDDK:Extensions-AppleBuilt: 
  144.  
  145. to the Extensions folder.
  146.  
  147. 3. Before you reboot, modify the file "USB Support" to include
  148. a new resource 'usbx' (Resource ID = 1984).  Without this resource, this release of
  149. USB will not load. The following alert is raised to indicate that the 
  150. resource is not present.
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164. 4. Reboot your system after making this modification.
  165.  
  166.  
  167. Important Notes on Installation and Use of this DDK software
  168. ------------------------------------------------------------
  169.  
  170. This DDK will let you look at the sources to some working class 
  171. drivers, build the examples, and develop & build your own code.
  172.  
  173. Please remember that these driver samples are Copyright Apple 
  174. Computer, Inc.. You may use the supplied code to develop Class 
  175. Drivers for your devices. As for publishing the source code, please
  176. check first with the Mac OS USB DDK License agreement, included
  177. in this DDK.
  178.  
  179. The current driver samples may, reflect the latest
  180. state of the art of driver writing for USB in the Mac OS. Note that
  181. the PrinterClassModule sample is for example
  182. purpose only. This sample is the basis for real
  183. drivers under development, however we are unable to provide
  184. the actual class driver code. The remaining examples are the
  185. real code for the Keyboard HID, Mouse HID, Universal HID, and 
  186. Composite class drivers which will ship on the iMac
  187.  
  188. While not extensively tested (by the development team), 
  189. the sample sources have been tweaked slightly to make builds 
  190. under CodeWarrior some what less problematic. The project files 
  191. are provided to help jumpstart your development process.
  192.  
  193.  
  194. Using the Mac OS USB DDK under MPW
  195. ----------------------------------
  196.  
  197. For previous releases of the USB DDK, we provided a current 
  198. UserStartup•USBDDK and makefiles for each of the sample class
  199. drivers. As there are very few developers who program
  200. with the MPW environment and to expidite the release of this 
  201. DDK, we will no provide make files for the class driver samples, 
  202. nor UserStartup files for MPW.
  203.  
  204. If MPW is your primary development platform and you need 
  205. a make file for one of the example class drivers, submit a 
  206. request to the Mac OS USB mailing list and a sample make file, if
  207. available for the example, will be sent to you. See the section
  208. "Keeping up to date on Mac OS USB" above for information on
  209. how to subscribe to the Mac OS USB Developer mailing list.
  210.  
  211.  
  212. Using the Mac OS USB DDK with MetroWerks CodeWarrior
  213. ---------------------------------------------------
  214.  
  215. We have supplied MetroWerks CodeWarrior project files for
  216. all of the USB Modules code examples. All of the project
  217. files were created using CodeWarrior Pro 1, IDE 2.0. The 
  218. project files are also compatible with CodeWarrior Pro IDE 
  219. 2.1, 3.0 and later.
  220.  
  221. For the CodeWarrior IDE environments v2.0 - v3.0, you must use
  222. the Universal Interface & Libraries v3.1. The examples will
  223. not build using the interfaces supplied with the CodeWarrior
  224. v.2 - v3.0 environments. The URL for the Developer Development
  225. Kits web page is
  226.    
  227.    <http://developer.apple.com/sdk/>
  228.  
  229. As mentioned for MPW, it is highly recommend that you use 
  230. one Macintosh for coding purposes and one Mac (aka "Target"
  231. system) for checkout/testing purposes.
  232.  
  233. The supplied project files will place the built drivers
  234. and extensions into the Target folder of the DDK.
  235.  
  236.  
  237. Installing the Mac OS USB DDK for CodeWarrior for the First Time
  238. -----------------------------------------------------------
  239.  
  240. 1. You can place the USBDDK anywhere on your development
  241.    system for the CodeWarrior environment. The access paths
  242.    for the project files are project and compiler relative.
  243.    If you move the examples folders out of the DDK, you must
  244.    fix the access paths so that the sources can be found.
  245.   
  246. 2. Ensure that the CodeWarrior IDE environment has at least the 
  247.    Universal Interfaces and Libraries 3.1 installed. The
  248.    download file from the DDK website includes instructions
  249.    for upgrading your CodeWarrior environment. Note that if
  250.    you upgrade your interfaces, you will also need to 
  251.    upgrade your precompiled headers. The supplied CodeWarrior
  252.    project files do not use precompiled headers.
  253.  
  254. 3. Copy the USB.h file included in this SDK to the 
  255.    ":Mac OS Support:Headers:Universal Headers:" folder.
  256.  
  257. 4. You will find that the project files will place the built drivers
  258.    and extensions into the folder.
  259.  
  260.     "USBDDK:Extensions-MCWBuilt"
  261.  
  262.    If this folder does not exist, or the folder name is different,
  263.    the class driver samples will be created in the CodeWarrior folder.
  264.  
  265. Updating a Previously Installed Mac OS USB DDK for CodeWarrior
  266. -------------------------------------------------------------
  267.  
  268. 1. Copy the USB.h file included in this SDK to the 
  269.    ":Mac OS Support:Headers:Universal Headers:" folder. Do not
  270.    use the USB.h header file from an earlier USB DDK with the
  271.    supplied project files, as the examples may not build.
  272.  
  273. 2. If you experience compiler errors with the program samples,
  274.    check whether you have updated the USB.h header in the
  275.    ":Mac OS Support:Headers:Universal Headers:" folder.
  276.  
  277. 3. You will need to create a folder by the name
  278.  
  279.     "USBDDK:Extensions-MCWBuilt"
  280.  
  281.    If this folder does not exist, or the folder name is different,
  282.    the class driver samples will be created in the CodeWarrior folder.
  283.  
  284. Using the CodeWarrior Project Files
  285. ---------------------------------
  286.  
  287.    For the following samples, there is only a single target for 
  288.    each project:
  289.  
  290.    CompositeClassDriver
  291.    KeyboardModule
  292.    MouseModule
  293.    UniversalModule
  294.    USBKeypad
  295.    USBModem
  296.    USBTabletModule
  297.  
  298.    For the PrinterClassDriver example, compile the targets in 
  299.    the following order
  300.  
  301.   1. PrinterClassDRVR - creates the 68K DRVR resource
  302.   2. PrintClassDriver - creates the USB PrintClassDriver module
  303.   3. ChooserPack.rsrc - creates the "PACK" resource
  304.   4. USB Chooser Driver - creates the Chooser extension for the 
  305.      USB printer
  306.    
  307.    For the USBSampleStorageDriver example, compile the targets in 
  308.    the following order
  309.  
  310.   1. USBStorageClassDriver - creates the USB StorageClassDriver module
  311.   2. USBStorageClassShim - creates the shim module which loads the unit
  312.                            table driver when the device is attached
  313.      USBStorageClassUTDriver - auto built into shim - native driver
  314.                            compiled as a resource into shim file.   
  315.    
  316. Description of Installed Files
  317. --------------------------
  318. Files in the 'Extensions-AppleBuilt' folder:
  319. Files:                  Description:
  320. USB Device Extension    File which contains the following class drivers
  321.                         USBCompositeDriver - A class driver which is loaded for class 0
  322.                              & and subclass 0 devices (typically keyboards & mice, 
  323.                              although a few    printers & modems appear as composite 
  324.                              class devices).
  325.                                              USBHubDriver0 & USBHubDriver1 - The Hub driver for the root hub,
  326.                              the Apple USB keyboard's hub, and most 3rd party hubs.
  327.                         USBKeyboardModule - The HID Module loaded for a keyboard 
  328.                              interface (typically in a compound device)
  329.                         USBMouseModule - A HID Module loaded for a mouse interface 
  330.                              (typically in a compound device).
  331.                         USBHIDUniversalModule - A HID Module designed to support a
  332.                              number of 3rd party gaming devices via Game Sprockets. 
  333.                              Refer to the "Mac OS USB Compatibility Notes" for a 
  334.                              description of the game devices supported.
  335.                         USBOpenHCIDriver - The HAL (Hardware Abstraction Layer), also 
  336.                              known as the "UIM" (USB Interface Module). This driver 
  337.                              provides an abstracted interface to the OpenHCI host 
  338.                              controllers on Mac motherboards and PCI controller cards.                      
  339.  
  340. USB Support             The INIT (actually an 'expt') portion of the Family 
  341.                         Expert. Loaded prior to the INIT parade, it starts 
  342.                         the 'find a USB bus (i.e. UIM driver), loads the
  343.                         hub driver (for the root hub), and starts
  344.                         the hub driver running.  Once running, the
  345.                         hub driver locates devices attached to the
  346.                         port and asks the FamilyExpertLib to load
  347.                         drivers for the devices connected to the
  348.                         hub's ports.                            
  349.                             
  350. USBPrintDriver          A Printing Class Driver for experimentation
  351.                         purposes.  Printing WILL NOT be functional
  352.                         simply with the addition of this file.  The
  353.                         chooser extension needed for USB printing
  354.                         is still in development and has not yet
  355.                         been released.
  356.           
  357.     
  358. Known Issues
  359. ------------
  360.  
  361. The following is a list of known issues with this final release
  362. of the USB DDK.
  363.  
  364.   - If you install this release of USB 1.3f3 directly without adding
  365.     the 'usbx' (ID = 1984) resource, then USB will not load and an
  366.     alert message is displayed
  367.  
  368.     Refer to the instructions above in section "Installing the Mac 
  369.     OS USB Software" on how to modify the "USB Support" file so that 
  370.     it will function correctly.
  371.  
  372.   - The USBSampleStorageDriver does not correctly demonstrate how to
  373.     handle a hot unplug situation. This sample will be updated to 
  374.     demonstrate how this situation should be properly handled. The 
  375.     existing sample sets up a Timer Task which when fired makes a
  376.     call to SystemTask.  The call to SystemTask is not supported
  377.     from an interrupt context.
  378.  
  379. Contact Information
  380. -------------------
  381.  
  382.   Mac OS USB DDK Upgrades and latest information:
  383.     
  384.     Check the Developer Development Kits web page for
  385.         upgrades to the Mac OS USB DDK. The web page is
  386.         
  387.         <http://developer.apple.com/sdk/>
  388.  
  389.     For the latest information on Mac OS USB, check the Mac OS USB web page.
  390.     The web page is
  391.  
  392.     <http://usb.apple.com>
  393.  
  394.   For Bug Reports:
  395.  
  396.     To ensure the appropriate data is collected, please use the Bug Reporter  
  397.     to send us your bug reports. The Bug Reporter can be found at: 
  398.  
  399.     <http://developer.apple.com/bugreporter>
  400.  
  401.     When reporting problems, please include the machine configuration, 
  402.     including the vendor of the PCI USB card which you have tested with.
  403.  
  404.   For Technical Questions:
  405.  
  406.                 For generic Mac OS USB questions, submit them to the Mac OS USB 
  407.     Developer mailing list. Refer to the section above "Keeping up to date 
  408.     on Mac OS USB" for information on how to subscribe to this mailing list.
  409.     Often questions can be answered by someone on the mailing list.
  410.  
  411.  
  412.                 If your question is not answered on the mailing list, or if your question 
  413.     is proprietary, contact Worldwide Developer with purchased development-level 
  414.     technical support incidents at
  415.  
  416.     dts@apple.com
  417.  
  418.     Technical support incidents are bundled in our Premier and Select 
  419.     Developer programs. For information about joining our programs, 
  420.     please visit our Apple Developer Connection web site at 
  421.  
  422.     http://developer.apple.com/programs. 
  423.  
  424.     If you have never purchased a technical support incident and would like 
  425.     to find out how to do so, please visit the following site: 
  426.  
  427.     http://developer.apple.com/programs/techsupport.html . 
  428.  
  429.     
  430.   Comments, Suggestions and Enhancement Requests
  431.  
  432.     Please send all comments and suggestions regarding the Mac OS USB DDK to
  433.     
  434.     usb@apple.com
  435.  
  436.     All email sent to this address will be read, however, we will not be to
  437.     respond to all of your comments and suggestions.
  438.  
  439.         
  440.